package algorithms.sort;

@FunctionalInterface
public interface ISort<T> {

	/*
	 * 核心方法
	 */
	T[] sort(T[] a);

	/**
	 * 模板方法，打印sort的执行时间
	 * 
	 * @param a
	 * @return
	 */
	default T[] sortwithTimeCounter(T[] a) {
		long begin = System.currentTimeMillis();
		try {
			return sort(a);
		} finally {
			System.out.println("used time:" + (System.currentTimeMillis() - begin) + " milliseconds");
		}

	}

}
